<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Function template operator&gt;&gt;</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
<link rel="up" href="../../tribool/reference.html#header.boost.logic.tribool_io_hpp" title="Header &lt;boost/logic/tribool_io.hpp&gt;">
<link rel="prev" href="operator_idm664.html" title="Function template operator&lt;&lt;">
<link rel="next" href="../../tribool/tests.html" title="Testsuite">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="operator_idm664.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../tribool/reference.html#header.boost.logic.tribool_io_hpp"><img src="../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../tribool/tests.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="refentry">
<a name="boost.logic.operator_idm683"></a><div class="titlepage"></div>
<div class="refnamediv">
<h2><span class="refentrytitle">Function template operator&gt;&gt;</span></h2>
<p>boost::logic::operator&gt;&gt; — Reads a tribool value from a stream. </p>
</div>
<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: &lt;<a class="link" href="../../tribool/reference.html#header.boost.logic.tribool_io_hpp" title="Header &lt;boost/logic/tribool_io.hpp&gt;">boost/logic/tribool_io.hpp</a>&gt;

</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> CharT<span class="special">,</span> <span class="keyword">typename</span> Traits<span class="special">&gt;</span> 
  <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> 
  <span class="keyword">operator</span><span class="special">&gt;&gt;</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span> <span class="identifier">CharT</span><span class="special">,</span> <span class="identifier">Traits</span> <span class="special">&gt;</span> <span class="special">&amp;</span> in<span class="special">,</span> <a class="link" href="tribool.html" title="Class tribool">tribool</a> <span class="special">&amp;</span> x<span class="special">)</span><span class="special">;</span></pre></div>
<div class="refsect1">
<a name="id-1.3.24.5.4.7.4"></a><h2>Description</h2>
<p>When <code class="computeroutput">(out.flags() &amp; std::ios_base::boolalpha) == 0</code>, this function reads a <code class="computeroutput">long</code> value from the input stream <code class="computeroutput">in</code> and converts that value to a tribool. If that value is 0, <code class="computeroutput">x</code> becomes <code class="computeroutput">false</code>; if it is 1, <code class="computeroutput">x</code> becomes <code class="computeroutput">true</code>; if it is 2, <code class="computeroutput">becomes</code> <code class="computeroutput">indetermine</code>; otherwise, the operation fails (and the fail bit is set on the input stream <code class="computeroutput">in</code>).</p>
<p>When <code class="computeroutput">(out.flags() &amp; std::ios_base::boolalpha) != 0</code>, this function first determines the names of the false, true, and indeterminate values. The false and true names are extracted from the <code class="computeroutput">std::numpunct</code> facet of the input stream's locale (if the C++ standard library implementation supports locales), or from the <code class="computeroutput">default_false_name</code> and <code class="computeroutput">default_true_name</code> functions (if there is no locale support). The indeterminate name is extracted from the appropriate <code class="computeroutput"><code class="computeroutput"><a class="link" href="indeterminate_name.html" title="Class template indeterminate_name">indeterminate_name</a></code></code> facet (if it is available in the input stream's locale), or from the <code class="computeroutput">get_default_indeterminate_name</code> function (if the C++ standard library implementation does not support locales, or the <code class="computeroutput"><code class="computeroutput"><a class="link" href="indeterminate_name.html" title="Class template indeterminate_name">indeterminate_name</a></code></code> facet is not specified for this locale object). The input is then matched to each of these names, and the tribool <code class="computeroutput">x</code> is assigned the value corresponding to the longest name that matched. If no name is matched or all names are empty, the operation fails (and the fail bit is set on the input stream <code class="computeroutput">in</code>).</p>
<p>
</p>
<div class="variablelist"><table border="0" class="variablelist compact">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term">Returns:</span></p></td>
<td><p><code class="computeroutput">in</code> </p></td>
</tr></tbody>
</table></div>
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2002-2004 Douglas Gregor<p>Use, modification and distribution is subject to the Boost
    Software License, Version 1.0. (See accompanying file
    <code class="filename">LICENSE_1_0.txt</code> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="operator_idm664.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../tribool/reference.html#header.boost.logic.tribool_io_hpp"><img src="../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../tribool/tests.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
